package de.fhdw.seminar.xtext.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import de.fhdw.seminar.xtext.services.UmlDslGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;

@SuppressWarnings("all")
public class InternalUmlDslParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_ID", "RULE_INT", "RULE_STRING", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'Boolean'", "'Integer'", "'String'", "'class'", "'{'", "'}'", "'extends'", "':'", "'abstract'", "'*'"
    };
    public static final int RULE_ID=4;
    public static final int RULE_ANY_OTHER=10;
    public static final int T__20=20;
    public static final int EOF=-1;
    public static final int RULE_SL_COMMENT=8;
    public static final int RULE_ML_COMMENT=7;
    public static final int T__19=19;
    public static final int RULE_STRING=6;
    public static final int T__16=16;
    public static final int T__15=15;
    public static final int T__18=18;
    public static final int T__17=17;
    public static final int T__12=12;
    public static final int T__11=11;
    public static final int T__14=14;
    public static final int T__13=13;
    public static final int RULE_INT=5;
    public static final int RULE_WS=9;

    // delegates
    // delegators


        public InternalUmlDslParser(TokenStream input) {
            this(input, new RecognizerSharedState());
        }
        public InternalUmlDslParser(TokenStream input, RecognizerSharedState state) {
            super(input, state);
             
        }
        

    public String[] getTokenNames() { return InternalUmlDslParser.tokenNames; }
    public String getGrammarFileName() { return "../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g"; }


     
     	private UmlDslGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(UmlDslGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start "entryRuleUmlModel"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:60:1: entryRuleUmlModel : ruleUmlModel EOF ;
    public final void entryRuleUmlModel() throws RecognitionException {
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:61:1: ( ruleUmlModel EOF )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:62:1: ruleUmlModel EOF
            {
             before(grammarAccess.getUmlModelRule()); 
            pushFollow(FOLLOW_ruleUmlModel_in_entryRuleUmlModel61);
            ruleUmlModel();

            state._fsp--;

             after(grammarAccess.getUmlModelRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUmlModel68); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleUmlModel"


    // $ANTLR start "ruleUmlModel"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:69:1: ruleUmlModel : ( ( rule__UmlModel__ClassesAssignment )* ) ;
    public final void ruleUmlModel() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:73:2: ( ( ( rule__UmlModel__ClassesAssignment )* ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:74:1: ( ( rule__UmlModel__ClassesAssignment )* )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:74:1: ( ( rule__UmlModel__ClassesAssignment )* )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:75:1: ( rule__UmlModel__ClassesAssignment )*
            {
             before(grammarAccess.getUmlModelAccess().getClassesAssignment()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:76:1: ( rule__UmlModel__ClassesAssignment )*
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( (LA1_0==14||LA1_0==19) ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:76:2: rule__UmlModel__ClassesAssignment
            	    {
            	    pushFollow(FOLLOW_rule__UmlModel__ClassesAssignment_in_ruleUmlModel94);
            	    rule__UmlModel__ClassesAssignment();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);

             after(grammarAccess.getUmlModelAccess().getClassesAssignment()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleUmlModel"


    // $ANTLR start "entryRuleUmlClass"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:88:1: entryRuleUmlClass : ruleUmlClass EOF ;
    public final void entryRuleUmlClass() throws RecognitionException {
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:89:1: ( ruleUmlClass EOF )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:90:1: ruleUmlClass EOF
            {
             before(grammarAccess.getUmlClassRule()); 
            pushFollow(FOLLOW_ruleUmlClass_in_entryRuleUmlClass122);
            ruleUmlClass();

            state._fsp--;

             after(grammarAccess.getUmlClassRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUmlClass129); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleUmlClass"


    // $ANTLR start "ruleUmlClass"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:97:1: ruleUmlClass : ( ( rule__UmlClass__Group__0 ) ) ;
    public final void ruleUmlClass() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:101:2: ( ( ( rule__UmlClass__Group__0 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:102:1: ( ( rule__UmlClass__Group__0 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:102:1: ( ( rule__UmlClass__Group__0 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:103:1: ( rule__UmlClass__Group__0 )
            {
             before(grammarAccess.getUmlClassAccess().getGroup()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:104:1: ( rule__UmlClass__Group__0 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:104:2: rule__UmlClass__Group__0
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__0_in_ruleUmlClass155);
            rule__UmlClass__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getUmlClassAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleUmlClass"


    // $ANTLR start "entryRuleUmlAssociation"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:116:1: entryRuleUmlAssociation : ruleUmlAssociation EOF ;
    public final void entryRuleUmlAssociation() throws RecognitionException {
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:117:1: ( ruleUmlAssociation EOF )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:118:1: ruleUmlAssociation EOF
            {
             before(grammarAccess.getUmlAssociationRule()); 
            pushFollow(FOLLOW_ruleUmlAssociation_in_entryRuleUmlAssociation182);
            ruleUmlAssociation();

            state._fsp--;

             after(grammarAccess.getUmlAssociationRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUmlAssociation189); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleUmlAssociation"


    // $ANTLR start "ruleUmlAssociation"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:125:1: ruleUmlAssociation : ( ( rule__UmlAssociation__Group__0 ) ) ;
    public final void ruleUmlAssociation() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:129:2: ( ( ( rule__UmlAssociation__Group__0 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:130:1: ( ( rule__UmlAssociation__Group__0 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:130:1: ( ( rule__UmlAssociation__Group__0 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:131:1: ( rule__UmlAssociation__Group__0 )
            {
             before(grammarAccess.getUmlAssociationAccess().getGroup()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:132:1: ( rule__UmlAssociation__Group__0 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:132:2: rule__UmlAssociation__Group__0
            {
            pushFollow(FOLLOW_rule__UmlAssociation__Group__0_in_ruleUmlAssociation215);
            rule__UmlAssociation__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getUmlAssociationAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleUmlAssociation"


    // $ANTLR start "entryRuleUmlAttribute"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:144:1: entryRuleUmlAttribute : ruleUmlAttribute EOF ;
    public final void entryRuleUmlAttribute() throws RecognitionException {
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:145:1: ( ruleUmlAttribute EOF )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:146:1: ruleUmlAttribute EOF
            {
             before(grammarAccess.getUmlAttributeRule()); 
            pushFollow(FOLLOW_ruleUmlAttribute_in_entryRuleUmlAttribute242);
            ruleUmlAttribute();

            state._fsp--;

             after(grammarAccess.getUmlAttributeRule()); 
            match(input,EOF,FOLLOW_EOF_in_entryRuleUmlAttribute249); 

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end "entryRuleUmlAttribute"


    // $ANTLR start "ruleUmlAttribute"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:153:1: ruleUmlAttribute : ( ( rule__UmlAttribute__Group__0 ) ) ;
    public final void ruleUmlAttribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:157:2: ( ( ( rule__UmlAttribute__Group__0 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:158:1: ( ( rule__UmlAttribute__Group__0 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:158:1: ( ( rule__UmlAttribute__Group__0 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:159:1: ( rule__UmlAttribute__Group__0 )
            {
             before(grammarAccess.getUmlAttributeAccess().getGroup()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:160:1: ( rule__UmlAttribute__Group__0 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:160:2: rule__UmlAttribute__Group__0
            {
            pushFollow(FOLLOW_rule__UmlAttribute__Group__0_in_ruleUmlAttribute275);
            rule__UmlAttribute__Group__0();

            state._fsp--;


            }

             after(grammarAccess.getUmlAttributeAccess().getGroup()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleUmlAttribute"


    // $ANTLR start "ruleBuiltInTypes"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:173:1: ruleBuiltInTypes : ( ( rule__BuiltInTypes__Alternatives ) ) ;
    public final void ruleBuiltInTypes() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:177:1: ( ( ( rule__BuiltInTypes__Alternatives ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:178:1: ( ( rule__BuiltInTypes__Alternatives ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:178:1: ( ( rule__BuiltInTypes__Alternatives ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:179:1: ( rule__BuiltInTypes__Alternatives )
            {
             before(grammarAccess.getBuiltInTypesAccess().getAlternatives()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:180:1: ( rule__BuiltInTypes__Alternatives )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:180:2: rule__BuiltInTypes__Alternatives
            {
            pushFollow(FOLLOW_rule__BuiltInTypes__Alternatives_in_ruleBuiltInTypes312);
            rule__BuiltInTypes__Alternatives();

            state._fsp--;


            }

             after(grammarAccess.getBuiltInTypesAccess().getAlternatives()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "ruleBuiltInTypes"


    // $ANTLR start "rule__UmlClass__Alternatives_5"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:191:1: rule__UmlClass__Alternatives_5 : ( ( ( rule__UmlClass__AssociationsAssignment_5_0 ) ) | ( ( rule__UmlClass__AttributesAssignment_5_1 ) ) );
    public final void rule__UmlClass__Alternatives_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:195:1: ( ( ( rule__UmlClass__AssociationsAssignment_5_0 ) ) | ( ( rule__UmlClass__AttributesAssignment_5_1 ) ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( (LA2_0==RULE_ID) ) {
                int LA2_1 = input.LA(2);

                if ( (LA2_1==18) ) {
                    int LA2_2 = input.LA(3);

                    if ( ((LA2_2>=11 && LA2_2<=13)) ) {
                        alt2=2;
                    }
                    else if ( (LA2_2==RULE_ID) ) {
                        alt2=1;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("", 2, 2, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("", 2, 1, input);

                    throw nvae;
                }
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:196:1: ( ( rule__UmlClass__AssociationsAssignment_5_0 ) )
                    {
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:196:1: ( ( rule__UmlClass__AssociationsAssignment_5_0 ) )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:197:1: ( rule__UmlClass__AssociationsAssignment_5_0 )
                    {
                     before(grammarAccess.getUmlClassAccess().getAssociationsAssignment_5_0()); 
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:198:1: ( rule__UmlClass__AssociationsAssignment_5_0 )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:198:2: rule__UmlClass__AssociationsAssignment_5_0
                    {
                    pushFollow(FOLLOW_rule__UmlClass__AssociationsAssignment_5_0_in_rule__UmlClass__Alternatives_5347);
                    rule__UmlClass__AssociationsAssignment_5_0();

                    state._fsp--;


                    }

                     after(grammarAccess.getUmlClassAccess().getAssociationsAssignment_5_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:202:6: ( ( rule__UmlClass__AttributesAssignment_5_1 ) )
                    {
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:202:6: ( ( rule__UmlClass__AttributesAssignment_5_1 ) )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:203:1: ( rule__UmlClass__AttributesAssignment_5_1 )
                    {
                     before(grammarAccess.getUmlClassAccess().getAttributesAssignment_5_1()); 
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:204:1: ( rule__UmlClass__AttributesAssignment_5_1 )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:204:2: rule__UmlClass__AttributesAssignment_5_1
                    {
                    pushFollow(FOLLOW_rule__UmlClass__AttributesAssignment_5_1_in_rule__UmlClass__Alternatives_5365);
                    rule__UmlClass__AttributesAssignment_5_1();

                    state._fsp--;


                    }

                     after(grammarAccess.getUmlClassAccess().getAttributesAssignment_5_1()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Alternatives_5"


    // $ANTLR start "rule__BuiltInTypes__Alternatives"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:213:1: rule__BuiltInTypes__Alternatives : ( ( ( 'Boolean' ) ) | ( ( 'Integer' ) ) | ( ( 'String' ) ) );
    public final void rule__BuiltInTypes__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:217:1: ( ( ( 'Boolean' ) ) | ( ( 'Integer' ) ) | ( ( 'String' ) ) )
            int alt3=3;
            switch ( input.LA(1) ) {
            case 11:
                {
                alt3=1;
                }
                break;
            case 12:
                {
                alt3=2;
                }
                break;
            case 13:
                {
                alt3=3;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("", 3, 0, input);

                throw nvae;
            }

            switch (alt3) {
                case 1 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:218:1: ( ( 'Boolean' ) )
                    {
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:218:1: ( ( 'Boolean' ) )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:219:1: ( 'Boolean' )
                    {
                     before(grammarAccess.getBuiltInTypesAccess().getBOOLEANEnumLiteralDeclaration_0()); 
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:220:1: ( 'Boolean' )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:220:3: 'Boolean'
                    {
                    match(input,11,FOLLOW_11_in_rule__BuiltInTypes__Alternatives399); 

                    }

                     after(grammarAccess.getBuiltInTypesAccess().getBOOLEANEnumLiteralDeclaration_0()); 

                    }


                    }
                    break;
                case 2 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:225:6: ( ( 'Integer' ) )
                    {
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:225:6: ( ( 'Integer' ) )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:226:1: ( 'Integer' )
                    {
                     before(grammarAccess.getBuiltInTypesAccess().getINTEGEREnumLiteralDeclaration_1()); 
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:227:1: ( 'Integer' )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:227:3: 'Integer'
                    {
                    match(input,12,FOLLOW_12_in_rule__BuiltInTypes__Alternatives420); 

                    }

                     after(grammarAccess.getBuiltInTypesAccess().getINTEGEREnumLiteralDeclaration_1()); 

                    }


                    }
                    break;
                case 3 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:232:6: ( ( 'String' ) )
                    {
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:232:6: ( ( 'String' ) )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:233:1: ( 'String' )
                    {
                     before(grammarAccess.getBuiltInTypesAccess().getSTRINGEnumLiteralDeclaration_2()); 
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:234:1: ( 'String' )
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:234:3: 'String'
                    {
                    match(input,13,FOLLOW_13_in_rule__BuiltInTypes__Alternatives441); 

                    }

                     after(grammarAccess.getBuiltInTypesAccess().getSTRINGEnumLiteralDeclaration_2()); 

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__BuiltInTypes__Alternatives"


    // $ANTLR start "rule__UmlClass__Group__0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:246:1: rule__UmlClass__Group__0 : rule__UmlClass__Group__0__Impl rule__UmlClass__Group__1 ;
    public final void rule__UmlClass__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:250:1: ( rule__UmlClass__Group__0__Impl rule__UmlClass__Group__1 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:251:2: rule__UmlClass__Group__0__Impl rule__UmlClass__Group__1
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__0__Impl_in_rule__UmlClass__Group__0474);
            rule__UmlClass__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group__1_in_rule__UmlClass__Group__0477);
            rule__UmlClass__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__0"


    // $ANTLR start "rule__UmlClass__Group__0__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:258:1: rule__UmlClass__Group__0__Impl : ( ( rule__UmlClass__IsAbstractAssignment_0 )? ) ;
    public final void rule__UmlClass__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:262:1: ( ( ( rule__UmlClass__IsAbstractAssignment_0 )? ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:263:1: ( ( rule__UmlClass__IsAbstractAssignment_0 )? )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:263:1: ( ( rule__UmlClass__IsAbstractAssignment_0 )? )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:264:1: ( rule__UmlClass__IsAbstractAssignment_0 )?
            {
             before(grammarAccess.getUmlClassAccess().getIsAbstractAssignment_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:265:1: ( rule__UmlClass__IsAbstractAssignment_0 )?
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==19) ) {
                alt4=1;
            }
            switch (alt4) {
                case 1 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:265:2: rule__UmlClass__IsAbstractAssignment_0
                    {
                    pushFollow(FOLLOW_rule__UmlClass__IsAbstractAssignment_0_in_rule__UmlClass__Group__0__Impl504);
                    rule__UmlClass__IsAbstractAssignment_0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getUmlClassAccess().getIsAbstractAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__0__Impl"


    // $ANTLR start "rule__UmlClass__Group__1"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:275:1: rule__UmlClass__Group__1 : rule__UmlClass__Group__1__Impl rule__UmlClass__Group__2 ;
    public final void rule__UmlClass__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:279:1: ( rule__UmlClass__Group__1__Impl rule__UmlClass__Group__2 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:280:2: rule__UmlClass__Group__1__Impl rule__UmlClass__Group__2
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__1__Impl_in_rule__UmlClass__Group__1535);
            rule__UmlClass__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group__2_in_rule__UmlClass__Group__1538);
            rule__UmlClass__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__1"


    // $ANTLR start "rule__UmlClass__Group__1__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:287:1: rule__UmlClass__Group__1__Impl : ( 'class' ) ;
    public final void rule__UmlClass__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:291:1: ( ( 'class' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:292:1: ( 'class' )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:292:1: ( 'class' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:293:1: 'class'
            {
             before(grammarAccess.getUmlClassAccess().getClassKeyword_1()); 
            match(input,14,FOLLOW_14_in_rule__UmlClass__Group__1__Impl566); 
             after(grammarAccess.getUmlClassAccess().getClassKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__1__Impl"


    // $ANTLR start "rule__UmlClass__Group__2"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:306:1: rule__UmlClass__Group__2 : rule__UmlClass__Group__2__Impl rule__UmlClass__Group__3 ;
    public final void rule__UmlClass__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:310:1: ( rule__UmlClass__Group__2__Impl rule__UmlClass__Group__3 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:311:2: rule__UmlClass__Group__2__Impl rule__UmlClass__Group__3
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__2__Impl_in_rule__UmlClass__Group__2597);
            rule__UmlClass__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group__3_in_rule__UmlClass__Group__2600);
            rule__UmlClass__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__2"


    // $ANTLR start "rule__UmlClass__Group__2__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:318:1: rule__UmlClass__Group__2__Impl : ( ( rule__UmlClass__NameAssignment_2 ) ) ;
    public final void rule__UmlClass__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:322:1: ( ( ( rule__UmlClass__NameAssignment_2 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:323:1: ( ( rule__UmlClass__NameAssignment_2 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:323:1: ( ( rule__UmlClass__NameAssignment_2 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:324:1: ( rule__UmlClass__NameAssignment_2 )
            {
             before(grammarAccess.getUmlClassAccess().getNameAssignment_2()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:325:1: ( rule__UmlClass__NameAssignment_2 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:325:2: rule__UmlClass__NameAssignment_2
            {
            pushFollow(FOLLOW_rule__UmlClass__NameAssignment_2_in_rule__UmlClass__Group__2__Impl627);
            rule__UmlClass__NameAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getUmlClassAccess().getNameAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__2__Impl"


    // $ANTLR start "rule__UmlClass__Group__3"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:335:1: rule__UmlClass__Group__3 : rule__UmlClass__Group__3__Impl rule__UmlClass__Group__4 ;
    public final void rule__UmlClass__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:339:1: ( rule__UmlClass__Group__3__Impl rule__UmlClass__Group__4 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:340:2: rule__UmlClass__Group__3__Impl rule__UmlClass__Group__4
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__3__Impl_in_rule__UmlClass__Group__3657);
            rule__UmlClass__Group__3__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group__4_in_rule__UmlClass__Group__3660);
            rule__UmlClass__Group__4();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__3"


    // $ANTLR start "rule__UmlClass__Group__3__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:347:1: rule__UmlClass__Group__3__Impl : ( ( rule__UmlClass__Group_3__0 )? ) ;
    public final void rule__UmlClass__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:351:1: ( ( ( rule__UmlClass__Group_3__0 )? ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:352:1: ( ( rule__UmlClass__Group_3__0 )? )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:352:1: ( ( rule__UmlClass__Group_3__0 )? )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:353:1: ( rule__UmlClass__Group_3__0 )?
            {
             before(grammarAccess.getUmlClassAccess().getGroup_3()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:354:1: ( rule__UmlClass__Group_3__0 )?
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==17) ) {
                alt5=1;
            }
            switch (alt5) {
                case 1 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:354:2: rule__UmlClass__Group_3__0
                    {
                    pushFollow(FOLLOW_rule__UmlClass__Group_3__0_in_rule__UmlClass__Group__3__Impl687);
                    rule__UmlClass__Group_3__0();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getUmlClassAccess().getGroup_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__3__Impl"


    // $ANTLR start "rule__UmlClass__Group__4"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:364:1: rule__UmlClass__Group__4 : rule__UmlClass__Group__4__Impl rule__UmlClass__Group__5 ;
    public final void rule__UmlClass__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:368:1: ( rule__UmlClass__Group__4__Impl rule__UmlClass__Group__5 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:369:2: rule__UmlClass__Group__4__Impl rule__UmlClass__Group__5
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__4__Impl_in_rule__UmlClass__Group__4718);
            rule__UmlClass__Group__4__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group__5_in_rule__UmlClass__Group__4721);
            rule__UmlClass__Group__5();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__4"


    // $ANTLR start "rule__UmlClass__Group__4__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:376:1: rule__UmlClass__Group__4__Impl : ( '{' ) ;
    public final void rule__UmlClass__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:380:1: ( ( '{' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:381:1: ( '{' )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:381:1: ( '{' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:382:1: '{'
            {
             before(grammarAccess.getUmlClassAccess().getLeftCurlyBracketKeyword_4()); 
            match(input,15,FOLLOW_15_in_rule__UmlClass__Group__4__Impl749); 
             after(grammarAccess.getUmlClassAccess().getLeftCurlyBracketKeyword_4()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__4__Impl"


    // $ANTLR start "rule__UmlClass__Group__5"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:395:1: rule__UmlClass__Group__5 : rule__UmlClass__Group__5__Impl rule__UmlClass__Group__6 ;
    public final void rule__UmlClass__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:399:1: ( rule__UmlClass__Group__5__Impl rule__UmlClass__Group__6 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:400:2: rule__UmlClass__Group__5__Impl rule__UmlClass__Group__6
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__5__Impl_in_rule__UmlClass__Group__5780);
            rule__UmlClass__Group__5__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group__6_in_rule__UmlClass__Group__5783);
            rule__UmlClass__Group__6();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__5"


    // $ANTLR start "rule__UmlClass__Group__5__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:407:1: rule__UmlClass__Group__5__Impl : ( ( rule__UmlClass__Alternatives_5 )* ) ;
    public final void rule__UmlClass__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:411:1: ( ( ( rule__UmlClass__Alternatives_5 )* ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:412:1: ( ( rule__UmlClass__Alternatives_5 )* )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:412:1: ( ( rule__UmlClass__Alternatives_5 )* )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:413:1: ( rule__UmlClass__Alternatives_5 )*
            {
             before(grammarAccess.getUmlClassAccess().getAlternatives_5()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:414:1: ( rule__UmlClass__Alternatives_5 )*
            loop6:
            do {
                int alt6=2;
                int LA6_0 = input.LA(1);

                if ( (LA6_0==RULE_ID) ) {
                    alt6=1;
                }


                switch (alt6) {
            	case 1 :
            	    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:414:2: rule__UmlClass__Alternatives_5
            	    {
            	    pushFollow(FOLLOW_rule__UmlClass__Alternatives_5_in_rule__UmlClass__Group__5__Impl810);
            	    rule__UmlClass__Alternatives_5();

            	    state._fsp--;


            	    }
            	    break;

            	default :
            	    break loop6;
                }
            } while (true);

             after(grammarAccess.getUmlClassAccess().getAlternatives_5()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__5__Impl"


    // $ANTLR start "rule__UmlClass__Group__6"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:424:1: rule__UmlClass__Group__6 : rule__UmlClass__Group__6__Impl ;
    public final void rule__UmlClass__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:428:1: ( rule__UmlClass__Group__6__Impl )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:429:2: rule__UmlClass__Group__6__Impl
            {
            pushFollow(FOLLOW_rule__UmlClass__Group__6__Impl_in_rule__UmlClass__Group__6841);
            rule__UmlClass__Group__6__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__6"


    // $ANTLR start "rule__UmlClass__Group__6__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:435:1: rule__UmlClass__Group__6__Impl : ( '}' ) ;
    public final void rule__UmlClass__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:439:1: ( ( '}' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:440:1: ( '}' )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:440:1: ( '}' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:441:1: '}'
            {
             before(grammarAccess.getUmlClassAccess().getRightCurlyBracketKeyword_6()); 
            match(input,16,FOLLOW_16_in_rule__UmlClass__Group__6__Impl869); 
             after(grammarAccess.getUmlClassAccess().getRightCurlyBracketKeyword_6()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group__6__Impl"


    // $ANTLR start "rule__UmlClass__Group_3__0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:468:1: rule__UmlClass__Group_3__0 : rule__UmlClass__Group_3__0__Impl rule__UmlClass__Group_3__1 ;
    public final void rule__UmlClass__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:472:1: ( rule__UmlClass__Group_3__0__Impl rule__UmlClass__Group_3__1 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:473:2: rule__UmlClass__Group_3__0__Impl rule__UmlClass__Group_3__1
            {
            pushFollow(FOLLOW_rule__UmlClass__Group_3__0__Impl_in_rule__UmlClass__Group_3__0914);
            rule__UmlClass__Group_3__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlClass__Group_3__1_in_rule__UmlClass__Group_3__0917);
            rule__UmlClass__Group_3__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group_3__0"


    // $ANTLR start "rule__UmlClass__Group_3__0__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:480:1: rule__UmlClass__Group_3__0__Impl : ( 'extends' ) ;
    public final void rule__UmlClass__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:484:1: ( ( 'extends' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:485:1: ( 'extends' )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:485:1: ( 'extends' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:486:1: 'extends'
            {
             before(grammarAccess.getUmlClassAccess().getExtendsKeyword_3_0()); 
            match(input,17,FOLLOW_17_in_rule__UmlClass__Group_3__0__Impl945); 
             after(grammarAccess.getUmlClassAccess().getExtendsKeyword_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group_3__0__Impl"


    // $ANTLR start "rule__UmlClass__Group_3__1"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:499:1: rule__UmlClass__Group_3__1 : rule__UmlClass__Group_3__1__Impl ;
    public final void rule__UmlClass__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:503:1: ( rule__UmlClass__Group_3__1__Impl )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:504:2: rule__UmlClass__Group_3__1__Impl
            {
            pushFollow(FOLLOW_rule__UmlClass__Group_3__1__Impl_in_rule__UmlClass__Group_3__1976);
            rule__UmlClass__Group_3__1__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group_3__1"


    // $ANTLR start "rule__UmlClass__Group_3__1__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:510:1: rule__UmlClass__Group_3__1__Impl : ( ( rule__UmlClass__SuperTypeAssignment_3_1 ) ) ;
    public final void rule__UmlClass__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:514:1: ( ( ( rule__UmlClass__SuperTypeAssignment_3_1 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:515:1: ( ( rule__UmlClass__SuperTypeAssignment_3_1 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:515:1: ( ( rule__UmlClass__SuperTypeAssignment_3_1 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:516:1: ( rule__UmlClass__SuperTypeAssignment_3_1 )
            {
             before(grammarAccess.getUmlClassAccess().getSuperTypeAssignment_3_1()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:517:1: ( rule__UmlClass__SuperTypeAssignment_3_1 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:517:2: rule__UmlClass__SuperTypeAssignment_3_1
            {
            pushFollow(FOLLOW_rule__UmlClass__SuperTypeAssignment_3_1_in_rule__UmlClass__Group_3__1__Impl1003);
            rule__UmlClass__SuperTypeAssignment_3_1();

            state._fsp--;


            }

             after(grammarAccess.getUmlClassAccess().getSuperTypeAssignment_3_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__Group_3__1__Impl"


    // $ANTLR start "rule__UmlAssociation__Group__0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:531:1: rule__UmlAssociation__Group__0 : rule__UmlAssociation__Group__0__Impl rule__UmlAssociation__Group__1 ;
    public final void rule__UmlAssociation__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:535:1: ( rule__UmlAssociation__Group__0__Impl rule__UmlAssociation__Group__1 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:536:2: rule__UmlAssociation__Group__0__Impl rule__UmlAssociation__Group__1
            {
            pushFollow(FOLLOW_rule__UmlAssociation__Group__0__Impl_in_rule__UmlAssociation__Group__01037);
            rule__UmlAssociation__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlAssociation__Group__1_in_rule__UmlAssociation__Group__01040);
            rule__UmlAssociation__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__0"


    // $ANTLR start "rule__UmlAssociation__Group__0__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:543:1: rule__UmlAssociation__Group__0__Impl : ( ( rule__UmlAssociation__NameAssignment_0 ) ) ;
    public final void rule__UmlAssociation__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:547:1: ( ( ( rule__UmlAssociation__NameAssignment_0 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:548:1: ( ( rule__UmlAssociation__NameAssignment_0 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:548:1: ( ( rule__UmlAssociation__NameAssignment_0 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:549:1: ( rule__UmlAssociation__NameAssignment_0 )
            {
             before(grammarAccess.getUmlAssociationAccess().getNameAssignment_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:550:1: ( rule__UmlAssociation__NameAssignment_0 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:550:2: rule__UmlAssociation__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__UmlAssociation__NameAssignment_0_in_rule__UmlAssociation__Group__0__Impl1067);
            rule__UmlAssociation__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getUmlAssociationAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__0__Impl"


    // $ANTLR start "rule__UmlAssociation__Group__1"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:560:1: rule__UmlAssociation__Group__1 : rule__UmlAssociation__Group__1__Impl rule__UmlAssociation__Group__2 ;
    public final void rule__UmlAssociation__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:564:1: ( rule__UmlAssociation__Group__1__Impl rule__UmlAssociation__Group__2 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:565:2: rule__UmlAssociation__Group__1__Impl rule__UmlAssociation__Group__2
            {
            pushFollow(FOLLOW_rule__UmlAssociation__Group__1__Impl_in_rule__UmlAssociation__Group__11097);
            rule__UmlAssociation__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlAssociation__Group__2_in_rule__UmlAssociation__Group__11100);
            rule__UmlAssociation__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__1"


    // $ANTLR start "rule__UmlAssociation__Group__1__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:572:1: rule__UmlAssociation__Group__1__Impl : ( ':' ) ;
    public final void rule__UmlAssociation__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:576:1: ( ( ':' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:577:1: ( ':' )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:577:1: ( ':' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:578:1: ':'
            {
             before(grammarAccess.getUmlAssociationAccess().getColonKeyword_1()); 
            match(input,18,FOLLOW_18_in_rule__UmlAssociation__Group__1__Impl1128); 
             after(grammarAccess.getUmlAssociationAccess().getColonKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__1__Impl"


    // $ANTLR start "rule__UmlAssociation__Group__2"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:591:1: rule__UmlAssociation__Group__2 : rule__UmlAssociation__Group__2__Impl rule__UmlAssociation__Group__3 ;
    public final void rule__UmlAssociation__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:595:1: ( rule__UmlAssociation__Group__2__Impl rule__UmlAssociation__Group__3 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:596:2: rule__UmlAssociation__Group__2__Impl rule__UmlAssociation__Group__3
            {
            pushFollow(FOLLOW_rule__UmlAssociation__Group__2__Impl_in_rule__UmlAssociation__Group__21159);
            rule__UmlAssociation__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlAssociation__Group__3_in_rule__UmlAssociation__Group__21162);
            rule__UmlAssociation__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__2"


    // $ANTLR start "rule__UmlAssociation__Group__2__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:603:1: rule__UmlAssociation__Group__2__Impl : ( ( rule__UmlAssociation__TypeAssignment_2 ) ) ;
    public final void rule__UmlAssociation__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:607:1: ( ( ( rule__UmlAssociation__TypeAssignment_2 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:608:1: ( ( rule__UmlAssociation__TypeAssignment_2 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:608:1: ( ( rule__UmlAssociation__TypeAssignment_2 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:609:1: ( rule__UmlAssociation__TypeAssignment_2 )
            {
             before(grammarAccess.getUmlAssociationAccess().getTypeAssignment_2()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:610:1: ( rule__UmlAssociation__TypeAssignment_2 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:610:2: rule__UmlAssociation__TypeAssignment_2
            {
            pushFollow(FOLLOW_rule__UmlAssociation__TypeAssignment_2_in_rule__UmlAssociation__Group__2__Impl1189);
            rule__UmlAssociation__TypeAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getUmlAssociationAccess().getTypeAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__2__Impl"


    // $ANTLR start "rule__UmlAssociation__Group__3"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:620:1: rule__UmlAssociation__Group__3 : rule__UmlAssociation__Group__3__Impl ;
    public final void rule__UmlAssociation__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:624:1: ( rule__UmlAssociation__Group__3__Impl )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:625:2: rule__UmlAssociation__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__UmlAssociation__Group__3__Impl_in_rule__UmlAssociation__Group__31219);
            rule__UmlAssociation__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__3"


    // $ANTLR start "rule__UmlAssociation__Group__3__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:631:1: rule__UmlAssociation__Group__3__Impl : ( ( rule__UmlAssociation__IsManyAssignment_3 )? ) ;
    public final void rule__UmlAssociation__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:635:1: ( ( ( rule__UmlAssociation__IsManyAssignment_3 )? ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:636:1: ( ( rule__UmlAssociation__IsManyAssignment_3 )? )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:636:1: ( ( rule__UmlAssociation__IsManyAssignment_3 )? )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:637:1: ( rule__UmlAssociation__IsManyAssignment_3 )?
            {
             before(grammarAccess.getUmlAssociationAccess().getIsManyAssignment_3()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:638:1: ( rule__UmlAssociation__IsManyAssignment_3 )?
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( (LA7_0==20) ) {
                alt7=1;
            }
            switch (alt7) {
                case 1 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:638:2: rule__UmlAssociation__IsManyAssignment_3
                    {
                    pushFollow(FOLLOW_rule__UmlAssociation__IsManyAssignment_3_in_rule__UmlAssociation__Group__3__Impl1246);
                    rule__UmlAssociation__IsManyAssignment_3();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getUmlAssociationAccess().getIsManyAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__Group__3__Impl"


    // $ANTLR start "rule__UmlAttribute__Group__0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:656:1: rule__UmlAttribute__Group__0 : rule__UmlAttribute__Group__0__Impl rule__UmlAttribute__Group__1 ;
    public final void rule__UmlAttribute__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:660:1: ( rule__UmlAttribute__Group__0__Impl rule__UmlAttribute__Group__1 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:661:2: rule__UmlAttribute__Group__0__Impl rule__UmlAttribute__Group__1
            {
            pushFollow(FOLLOW_rule__UmlAttribute__Group__0__Impl_in_rule__UmlAttribute__Group__01285);
            rule__UmlAttribute__Group__0__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlAttribute__Group__1_in_rule__UmlAttribute__Group__01288);
            rule__UmlAttribute__Group__1();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__0"


    // $ANTLR start "rule__UmlAttribute__Group__0__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:668:1: rule__UmlAttribute__Group__0__Impl : ( ( rule__UmlAttribute__NameAssignment_0 ) ) ;
    public final void rule__UmlAttribute__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:672:1: ( ( ( rule__UmlAttribute__NameAssignment_0 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:673:1: ( ( rule__UmlAttribute__NameAssignment_0 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:673:1: ( ( rule__UmlAttribute__NameAssignment_0 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:674:1: ( rule__UmlAttribute__NameAssignment_0 )
            {
             before(grammarAccess.getUmlAttributeAccess().getNameAssignment_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:675:1: ( rule__UmlAttribute__NameAssignment_0 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:675:2: rule__UmlAttribute__NameAssignment_0
            {
            pushFollow(FOLLOW_rule__UmlAttribute__NameAssignment_0_in_rule__UmlAttribute__Group__0__Impl1315);
            rule__UmlAttribute__NameAssignment_0();

            state._fsp--;


            }

             after(grammarAccess.getUmlAttributeAccess().getNameAssignment_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__0__Impl"


    // $ANTLR start "rule__UmlAttribute__Group__1"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:685:1: rule__UmlAttribute__Group__1 : rule__UmlAttribute__Group__1__Impl rule__UmlAttribute__Group__2 ;
    public final void rule__UmlAttribute__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:689:1: ( rule__UmlAttribute__Group__1__Impl rule__UmlAttribute__Group__2 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:690:2: rule__UmlAttribute__Group__1__Impl rule__UmlAttribute__Group__2
            {
            pushFollow(FOLLOW_rule__UmlAttribute__Group__1__Impl_in_rule__UmlAttribute__Group__11345);
            rule__UmlAttribute__Group__1__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlAttribute__Group__2_in_rule__UmlAttribute__Group__11348);
            rule__UmlAttribute__Group__2();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__1"


    // $ANTLR start "rule__UmlAttribute__Group__1__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:697:1: rule__UmlAttribute__Group__1__Impl : ( ':' ) ;
    public final void rule__UmlAttribute__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:701:1: ( ( ':' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:702:1: ( ':' )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:702:1: ( ':' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:703:1: ':'
            {
             before(grammarAccess.getUmlAttributeAccess().getColonKeyword_1()); 
            match(input,18,FOLLOW_18_in_rule__UmlAttribute__Group__1__Impl1376); 
             after(grammarAccess.getUmlAttributeAccess().getColonKeyword_1()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__1__Impl"


    // $ANTLR start "rule__UmlAttribute__Group__2"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:716:1: rule__UmlAttribute__Group__2 : rule__UmlAttribute__Group__2__Impl rule__UmlAttribute__Group__3 ;
    public final void rule__UmlAttribute__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:720:1: ( rule__UmlAttribute__Group__2__Impl rule__UmlAttribute__Group__3 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:721:2: rule__UmlAttribute__Group__2__Impl rule__UmlAttribute__Group__3
            {
            pushFollow(FOLLOW_rule__UmlAttribute__Group__2__Impl_in_rule__UmlAttribute__Group__21407);
            rule__UmlAttribute__Group__2__Impl();

            state._fsp--;

            pushFollow(FOLLOW_rule__UmlAttribute__Group__3_in_rule__UmlAttribute__Group__21410);
            rule__UmlAttribute__Group__3();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__2"


    // $ANTLR start "rule__UmlAttribute__Group__2__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:728:1: rule__UmlAttribute__Group__2__Impl : ( ( rule__UmlAttribute__TypeAssignment_2 ) ) ;
    public final void rule__UmlAttribute__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:732:1: ( ( ( rule__UmlAttribute__TypeAssignment_2 ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:733:1: ( ( rule__UmlAttribute__TypeAssignment_2 ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:733:1: ( ( rule__UmlAttribute__TypeAssignment_2 ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:734:1: ( rule__UmlAttribute__TypeAssignment_2 )
            {
             before(grammarAccess.getUmlAttributeAccess().getTypeAssignment_2()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:735:1: ( rule__UmlAttribute__TypeAssignment_2 )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:735:2: rule__UmlAttribute__TypeAssignment_2
            {
            pushFollow(FOLLOW_rule__UmlAttribute__TypeAssignment_2_in_rule__UmlAttribute__Group__2__Impl1437);
            rule__UmlAttribute__TypeAssignment_2();

            state._fsp--;


            }

             after(grammarAccess.getUmlAttributeAccess().getTypeAssignment_2()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__2__Impl"


    // $ANTLR start "rule__UmlAttribute__Group__3"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:745:1: rule__UmlAttribute__Group__3 : rule__UmlAttribute__Group__3__Impl ;
    public final void rule__UmlAttribute__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:749:1: ( rule__UmlAttribute__Group__3__Impl )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:750:2: rule__UmlAttribute__Group__3__Impl
            {
            pushFollow(FOLLOW_rule__UmlAttribute__Group__3__Impl_in_rule__UmlAttribute__Group__31467);
            rule__UmlAttribute__Group__3__Impl();

            state._fsp--;


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__3"


    // $ANTLR start "rule__UmlAttribute__Group__3__Impl"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:756:1: rule__UmlAttribute__Group__3__Impl : ( ( rule__UmlAttribute__IsManyAssignment_3 )? ) ;
    public final void rule__UmlAttribute__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:760:1: ( ( ( rule__UmlAttribute__IsManyAssignment_3 )? ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:761:1: ( ( rule__UmlAttribute__IsManyAssignment_3 )? )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:761:1: ( ( rule__UmlAttribute__IsManyAssignment_3 )? )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:762:1: ( rule__UmlAttribute__IsManyAssignment_3 )?
            {
             before(grammarAccess.getUmlAttributeAccess().getIsManyAssignment_3()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:763:1: ( rule__UmlAttribute__IsManyAssignment_3 )?
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( (LA8_0==20) ) {
                alt8=1;
            }
            switch (alt8) {
                case 1 :
                    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:763:2: rule__UmlAttribute__IsManyAssignment_3
                    {
                    pushFollow(FOLLOW_rule__UmlAttribute__IsManyAssignment_3_in_rule__UmlAttribute__Group__3__Impl1494);
                    rule__UmlAttribute__IsManyAssignment_3();

                    state._fsp--;


                    }
                    break;

            }

             after(grammarAccess.getUmlAttributeAccess().getIsManyAssignment_3()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__Group__3__Impl"


    // $ANTLR start "rule__UmlModel__ClassesAssignment"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:782:1: rule__UmlModel__ClassesAssignment : ( ruleUmlClass ) ;
    public final void rule__UmlModel__ClassesAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:786:1: ( ( ruleUmlClass ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:787:1: ( ruleUmlClass )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:787:1: ( ruleUmlClass )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:788:1: ruleUmlClass
            {
             before(grammarAccess.getUmlModelAccess().getClassesUmlClassParserRuleCall_0()); 
            pushFollow(FOLLOW_ruleUmlClass_in_rule__UmlModel__ClassesAssignment1538);
            ruleUmlClass();

            state._fsp--;

             after(grammarAccess.getUmlModelAccess().getClassesUmlClassParserRuleCall_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlModel__ClassesAssignment"


    // $ANTLR start "rule__UmlClass__IsAbstractAssignment_0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:797:1: rule__UmlClass__IsAbstractAssignment_0 : ( ( 'abstract' ) ) ;
    public final void rule__UmlClass__IsAbstractAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:801:1: ( ( ( 'abstract' ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:802:1: ( ( 'abstract' ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:802:1: ( ( 'abstract' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:803:1: ( 'abstract' )
            {
             before(grammarAccess.getUmlClassAccess().getIsAbstractAbstractKeyword_0_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:804:1: ( 'abstract' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:805:1: 'abstract'
            {
             before(grammarAccess.getUmlClassAccess().getIsAbstractAbstractKeyword_0_0()); 
            match(input,19,FOLLOW_19_in_rule__UmlClass__IsAbstractAssignment_01574); 
             after(grammarAccess.getUmlClassAccess().getIsAbstractAbstractKeyword_0_0()); 

            }

             after(grammarAccess.getUmlClassAccess().getIsAbstractAbstractKeyword_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__IsAbstractAssignment_0"


    // $ANTLR start "rule__UmlClass__NameAssignment_2"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:820:1: rule__UmlClass__NameAssignment_2 : ( RULE_ID ) ;
    public final void rule__UmlClass__NameAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:824:1: ( ( RULE_ID ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:825:1: ( RULE_ID )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:825:1: ( RULE_ID )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:826:1: RULE_ID
            {
             before(grammarAccess.getUmlClassAccess().getNameIDTerminalRuleCall_2_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__UmlClass__NameAssignment_21613); 
             after(grammarAccess.getUmlClassAccess().getNameIDTerminalRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__NameAssignment_2"


    // $ANTLR start "rule__UmlClass__SuperTypeAssignment_3_1"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:835:1: rule__UmlClass__SuperTypeAssignment_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__UmlClass__SuperTypeAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:839:1: ( ( ( RULE_ID ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:840:1: ( ( RULE_ID ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:840:1: ( ( RULE_ID ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:841:1: ( RULE_ID )
            {
             before(grammarAccess.getUmlClassAccess().getSuperTypeUmlClassCrossReference_3_1_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:842:1: ( RULE_ID )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:843:1: RULE_ID
            {
             before(grammarAccess.getUmlClassAccess().getSuperTypeUmlClassIDTerminalRuleCall_3_1_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__UmlClass__SuperTypeAssignment_3_11648); 
             after(grammarAccess.getUmlClassAccess().getSuperTypeUmlClassIDTerminalRuleCall_3_1_0_1()); 

            }

             after(grammarAccess.getUmlClassAccess().getSuperTypeUmlClassCrossReference_3_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__SuperTypeAssignment_3_1"


    // $ANTLR start "rule__UmlClass__AssociationsAssignment_5_0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:854:1: rule__UmlClass__AssociationsAssignment_5_0 : ( ruleUmlAssociation ) ;
    public final void rule__UmlClass__AssociationsAssignment_5_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:858:1: ( ( ruleUmlAssociation ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:859:1: ( ruleUmlAssociation )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:859:1: ( ruleUmlAssociation )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:860:1: ruleUmlAssociation
            {
             before(grammarAccess.getUmlClassAccess().getAssociationsUmlAssociationParserRuleCall_5_0_0()); 
            pushFollow(FOLLOW_ruleUmlAssociation_in_rule__UmlClass__AssociationsAssignment_5_01683);
            ruleUmlAssociation();

            state._fsp--;

             after(grammarAccess.getUmlClassAccess().getAssociationsUmlAssociationParserRuleCall_5_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__AssociationsAssignment_5_0"


    // $ANTLR start "rule__UmlClass__AttributesAssignment_5_1"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:869:1: rule__UmlClass__AttributesAssignment_5_1 : ( ruleUmlAttribute ) ;
    public final void rule__UmlClass__AttributesAssignment_5_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:873:1: ( ( ruleUmlAttribute ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:874:1: ( ruleUmlAttribute )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:874:1: ( ruleUmlAttribute )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:875:1: ruleUmlAttribute
            {
             before(grammarAccess.getUmlClassAccess().getAttributesUmlAttributeParserRuleCall_5_1_0()); 
            pushFollow(FOLLOW_ruleUmlAttribute_in_rule__UmlClass__AttributesAssignment_5_11714);
            ruleUmlAttribute();

            state._fsp--;

             after(grammarAccess.getUmlClassAccess().getAttributesUmlAttributeParserRuleCall_5_1_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlClass__AttributesAssignment_5_1"


    // $ANTLR start "rule__UmlAssociation__NameAssignment_0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:884:1: rule__UmlAssociation__NameAssignment_0 : ( RULE_ID ) ;
    public final void rule__UmlAssociation__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:888:1: ( ( RULE_ID ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:889:1: ( RULE_ID )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:889:1: ( RULE_ID )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:890:1: RULE_ID
            {
             before(grammarAccess.getUmlAssociationAccess().getNameIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__UmlAssociation__NameAssignment_01745); 
             after(grammarAccess.getUmlAssociationAccess().getNameIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__NameAssignment_0"


    // $ANTLR start "rule__UmlAssociation__TypeAssignment_2"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:899:1: rule__UmlAssociation__TypeAssignment_2 : ( ( RULE_ID ) ) ;
    public final void rule__UmlAssociation__TypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:903:1: ( ( ( RULE_ID ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:904:1: ( ( RULE_ID ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:904:1: ( ( RULE_ID ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:905:1: ( RULE_ID )
            {
             before(grammarAccess.getUmlAssociationAccess().getTypeUmlClassCrossReference_2_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:906:1: ( RULE_ID )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:907:1: RULE_ID
            {
             before(grammarAccess.getUmlAssociationAccess().getTypeUmlClassIDTerminalRuleCall_2_0_1()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__UmlAssociation__TypeAssignment_21780); 
             after(grammarAccess.getUmlAssociationAccess().getTypeUmlClassIDTerminalRuleCall_2_0_1()); 

            }

             after(grammarAccess.getUmlAssociationAccess().getTypeUmlClassCrossReference_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__TypeAssignment_2"


    // $ANTLR start "rule__UmlAssociation__IsManyAssignment_3"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:918:1: rule__UmlAssociation__IsManyAssignment_3 : ( ( '*' ) ) ;
    public final void rule__UmlAssociation__IsManyAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:922:1: ( ( ( '*' ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:923:1: ( ( '*' ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:923:1: ( ( '*' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:924:1: ( '*' )
            {
             before(grammarAccess.getUmlAssociationAccess().getIsManyAsteriskKeyword_3_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:925:1: ( '*' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:926:1: '*'
            {
             before(grammarAccess.getUmlAssociationAccess().getIsManyAsteriskKeyword_3_0()); 
            match(input,20,FOLLOW_20_in_rule__UmlAssociation__IsManyAssignment_31820); 
             after(grammarAccess.getUmlAssociationAccess().getIsManyAsteriskKeyword_3_0()); 

            }

             after(grammarAccess.getUmlAssociationAccess().getIsManyAsteriskKeyword_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAssociation__IsManyAssignment_3"


    // $ANTLR start "rule__UmlAttribute__NameAssignment_0"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:941:1: rule__UmlAttribute__NameAssignment_0 : ( RULE_ID ) ;
    public final void rule__UmlAttribute__NameAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:945:1: ( ( RULE_ID ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:946:1: ( RULE_ID )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:946:1: ( RULE_ID )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:947:1: RULE_ID
            {
             before(grammarAccess.getUmlAttributeAccess().getNameIDTerminalRuleCall_0_0()); 
            match(input,RULE_ID,FOLLOW_RULE_ID_in_rule__UmlAttribute__NameAssignment_01859); 
             after(grammarAccess.getUmlAttributeAccess().getNameIDTerminalRuleCall_0_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__NameAssignment_0"


    // $ANTLR start "rule__UmlAttribute__TypeAssignment_2"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:956:1: rule__UmlAttribute__TypeAssignment_2 : ( ruleBuiltInTypes ) ;
    public final void rule__UmlAttribute__TypeAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:960:1: ( ( ruleBuiltInTypes ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:961:1: ( ruleBuiltInTypes )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:961:1: ( ruleBuiltInTypes )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:962:1: ruleBuiltInTypes
            {
             before(grammarAccess.getUmlAttributeAccess().getTypeBuiltInTypesEnumRuleCall_2_0()); 
            pushFollow(FOLLOW_ruleBuiltInTypes_in_rule__UmlAttribute__TypeAssignment_21890);
            ruleBuiltInTypes();

            state._fsp--;

             after(grammarAccess.getUmlAttributeAccess().getTypeBuiltInTypesEnumRuleCall_2_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__TypeAssignment_2"


    // $ANTLR start "rule__UmlAttribute__IsManyAssignment_3"
    // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:971:1: rule__UmlAttribute__IsManyAssignment_3 : ( ( '*' ) ) ;
    public final void rule__UmlAttribute__IsManyAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:975:1: ( ( ( '*' ) ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:976:1: ( ( '*' ) )
            {
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:976:1: ( ( '*' ) )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:977:1: ( '*' )
            {
             before(grammarAccess.getUmlAttributeAccess().getIsManyAsteriskKeyword_3_0()); 
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:978:1: ( '*' )
            // ../de.fhdw.seminar.xtext.ui/src-gen/de/fhdw/seminar/xtext/ui/contentassist/antlr/internal/InternalUmlDsl.g:979:1: '*'
            {
             before(grammarAccess.getUmlAttributeAccess().getIsManyAsteriskKeyword_3_0()); 
            match(input,20,FOLLOW_20_in_rule__UmlAttribute__IsManyAssignment_31926); 
             after(grammarAccess.getUmlAttributeAccess().getIsManyAsteriskKeyword_3_0()); 

            }

             after(grammarAccess.getUmlAttributeAccess().getIsManyAsteriskKeyword_3_0()); 

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end "rule__UmlAttribute__IsManyAssignment_3"

    // Delegated rules


 

    public static final BitSet FOLLOW_ruleUmlModel_in_entryRuleUmlModel61 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUmlModel68 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlModel__ClassesAssignment_in_ruleUmlModel94 = new BitSet(new long[]{0x0000000000084002L});
    public static final BitSet FOLLOW_ruleUmlClass_in_entryRuleUmlClass122 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUmlClass129 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__0_in_ruleUmlClass155 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUmlAssociation_in_entryRuleUmlAssociation182 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUmlAssociation189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__0_in_ruleUmlAssociation215 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUmlAttribute_in_entryRuleUmlAttribute242 = new BitSet(new long[]{0x0000000000000000L});
    public static final BitSet FOLLOW_EOF_in_entryRuleUmlAttribute249 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__0_in_ruleUmlAttribute275 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__BuiltInTypes__Alternatives_in_ruleBuiltInTypes312 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__AssociationsAssignment_5_0_in_rule__UmlClass__Alternatives_5347 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__AttributesAssignment_5_1_in_rule__UmlClass__Alternatives_5365 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_11_in_rule__BuiltInTypes__Alternatives399 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_12_in_rule__BuiltInTypes__Alternatives420 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_13_in_rule__BuiltInTypes__Alternatives441 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__0__Impl_in_rule__UmlClass__Group__0474 = new BitSet(new long[]{0x0000000000084000L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__1_in_rule__UmlClass__Group__0477 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__IsAbstractAssignment_0_in_rule__UmlClass__Group__0__Impl504 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__1__Impl_in_rule__UmlClass__Group__1535 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__2_in_rule__UmlClass__Group__1538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_14_in_rule__UmlClass__Group__1__Impl566 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__2__Impl_in_rule__UmlClass__Group__2597 = new BitSet(new long[]{0x0000000000028000L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__3_in_rule__UmlClass__Group__2600 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__NameAssignment_2_in_rule__UmlClass__Group__2__Impl627 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__3__Impl_in_rule__UmlClass__Group__3657 = new BitSet(new long[]{0x0000000000028000L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__4_in_rule__UmlClass__Group__3660 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group_3__0_in_rule__UmlClass__Group__3__Impl687 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__4__Impl_in_rule__UmlClass__Group__4718 = new BitSet(new long[]{0x0000000000010010L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__5_in_rule__UmlClass__Group__4721 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_15_in_rule__UmlClass__Group__4__Impl749 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__5__Impl_in_rule__UmlClass__Group__5780 = new BitSet(new long[]{0x0000000000010010L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__6_in_rule__UmlClass__Group__5783 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Alternatives_5_in_rule__UmlClass__Group__5__Impl810 = new BitSet(new long[]{0x0000000000000012L});
    public static final BitSet FOLLOW_rule__UmlClass__Group__6__Impl_in_rule__UmlClass__Group__6841 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_16_in_rule__UmlClass__Group__6__Impl869 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group_3__0__Impl_in_rule__UmlClass__Group_3__0914 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__UmlClass__Group_3__1_in_rule__UmlClass__Group_3__0917 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_17_in_rule__UmlClass__Group_3__0__Impl945 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__Group_3__1__Impl_in_rule__UmlClass__Group_3__1976 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlClass__SuperTypeAssignment_3_1_in_rule__UmlClass__Group_3__1__Impl1003 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__0__Impl_in_rule__UmlAssociation__Group__01037 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__1_in_rule__UmlAssociation__Group__01040 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__NameAssignment_0_in_rule__UmlAssociation__Group__0__Impl1067 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__1__Impl_in_rule__UmlAssociation__Group__11097 = new BitSet(new long[]{0x0000000000000010L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__2_in_rule__UmlAssociation__Group__11100 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__UmlAssociation__Group__1__Impl1128 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__2__Impl_in_rule__UmlAssociation__Group__21159 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__3_in_rule__UmlAssociation__Group__21162 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__TypeAssignment_2_in_rule__UmlAssociation__Group__2__Impl1189 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__Group__3__Impl_in_rule__UmlAssociation__Group__31219 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAssociation__IsManyAssignment_3_in_rule__UmlAssociation__Group__3__Impl1246 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__0__Impl_in_rule__UmlAttribute__Group__01285 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__1_in_rule__UmlAttribute__Group__01288 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__NameAssignment_0_in_rule__UmlAttribute__Group__0__Impl1315 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__1__Impl_in_rule__UmlAttribute__Group__11345 = new BitSet(new long[]{0x0000000000003800L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__2_in_rule__UmlAttribute__Group__11348 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_18_in_rule__UmlAttribute__Group__1__Impl1376 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__2__Impl_in_rule__UmlAttribute__Group__21407 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__3_in_rule__UmlAttribute__Group__21410 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__TypeAssignment_2_in_rule__UmlAttribute__Group__2__Impl1437 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__Group__3__Impl_in_rule__UmlAttribute__Group__31467 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_rule__UmlAttribute__IsManyAssignment_3_in_rule__UmlAttribute__Group__3__Impl1494 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUmlClass_in_rule__UmlModel__ClassesAssignment1538 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_19_in_rule__UmlClass__IsAbstractAssignment_01574 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__UmlClass__NameAssignment_21613 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__UmlClass__SuperTypeAssignment_3_11648 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUmlAssociation_in_rule__UmlClass__AssociationsAssignment_5_01683 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleUmlAttribute_in_rule__UmlClass__AttributesAssignment_5_11714 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__UmlAssociation__NameAssignment_01745 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__UmlAssociation__TypeAssignment_21780 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__UmlAssociation__IsManyAssignment_31820 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_RULE_ID_in_rule__UmlAttribute__NameAssignment_01859 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ruleBuiltInTypes_in_rule__UmlAttribute__TypeAssignment_21890 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_20_in_rule__UmlAttribute__IsManyAssignment_31926 = new BitSet(new long[]{0x0000000000000002L});

}